package utils;

import uk.ac.nott.cs.g53dia.Bee;
import uk.ac.nott.cs.g53dia.bee.MyBee;

public class Constants {
	public static final boolean DEBUG = false;
	public static final String PROPERTIES_PATH_PREFIX = "/META-INF/";
	public static final String PROPERTIES_PATH = PROPERTIES_PATH_PREFIX + "application.properties";
	public static final String SIMULATION_CFG_KEY = "simultionConfig";
	public static final String TICK_DELAY_KEY = "tickDelay";
	public static final int TICK_DELAY_DEFAULT = 100;
	public static final String BEES_NUMBER_KEY = "beesNumber";
	public static final int BEES_NUMBER_DEFAULT = 5;
	public static final String GUI_KEY = "gui";
	public static final boolean GUI_DEFAULT = true;
	public static final boolean RECORD_DEFAULT = true;
	public static final String RANDOM_SEED_KEY = "randomSeed";
	// -1 = random => no seed
	public static final long RANDOM_SEED_DEFAULT = -1;
	public static final int DURATION_DEFAULT = 10;
	public static final String DURATION_KEY = "duration";
	public static final String RECORD_KEY = "record";
	
	// action codes
	public static final int CREATE_NEST_ACTION_CODE = 0;
	public static final int DEPOSIT_NECTAR_ACTION_CODE = 1;
	public static final int HARVEST_ACTION_CODE = 2;
	public static final int LEY_EGG_ACTION_CODE = 3;
	public static final int MOVE_ACTION_CODE = 4;
	public static final int MOVE_TOWARDS_ACTION_CODE = 5;
	public static final int REST_ACTION_CODE = 6;
	public static final int COMMUNICATE_ACTION_CODE = 7;
  public static final int FOLLOW_QUEEN_ACTION_CODE = 8;
	public static final String ACTION_ARGS_SEPARATOR = "#";
	
	// how often to write "##timestep=x" to replay
	public static final long RECORDER_DEBUG_STEP = 100;
	
	// keep it even
	public static final int GS_INITIAL_X = 252;
	// keep it even
	public static final int GS_INITIAL_Y = 252;
	
//	 // keep it even
//  public static final int GS_INITIAL_X = 152;
//  // keep it even
//  public static final int GS_INITIAL_Y = 152;
	
	public static final int GS_INITIAL_X_MIN = -GS_INITIAL_X/2;
	public static final int GS_INITIAL_Y_MIN = -GS_INITIAL_Y/2;
	public static final int GS_INITIAL_X_MAX = GS_INITIAL_X%2==1?GS_INITIAL_X/2:(GS_INITIAL_X/2)-1;
	public static final int GS_INITIAL_Y_MAX = GS_INITIAL_Y%2==1?GS_INITIAL_Y/2:(GS_INITIAL_Y/2)-1;

	public static final float PREC = 0.001f;
  public static final long STARTING_TIME = 0l;
  public static final Class<? extends Bee> DEFAULT_BEE = MyBee.class;

}
